﻿using System;
using System.Data.SqlClient;
using AuctionSite.Entities;

namespace AuctionSite.DAL
{
    public class ProdutoDAL
    {
        public Produto Incluir(Produto produto)
        {
            SqlConnection cn = new SqlConnection();
            try
            {

                cn.ConnectionString = Dados.StringDeConexao;
                //command
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;

                cmd.CommandText = "INSERT INTO produtos (prod_nome,prod_descricao,prod_valor,prod_data_inicial,prod_data_final,cat_id,sub_id,usu_id,prod_foto1,prod_foto2,prod_foto3,prod_reverso)VALUES (@prod_nome,@prod_descricao,@prod_valor,@prod_data_inicial,@prod_data_final,@cat_id,@sub_id,@usu_id,@prod_foto1,@prod_foto2,@prod_foto3,@prod_reverso);select @@IDENTITY;";

                cmd.Parameters.AddWithValue("@prod_nome", produto.Nome);
                cmd.Parameters.AddWithValue("@prod_descricao", produto.Descricao);
                cmd.Parameters.AddWithValue("@prod_valor", produto.Valor);
                cmd.Parameters.AddWithValue("@prod_data_inicial", produto.DataInicial);
                cmd.Parameters.AddWithValue("@prod_data_final", produto.DataFinal);
                cmd.Parameters.AddWithValue("@cat_id", produto.CategoriaId);
                cmd.Parameters.AddWithValue("@sub_id", produto.SubCategoriaId);
                cmd.Parameters.AddWithValue("@usu_id", produto.UsuarioId);
                cmd.Parameters.AddWithValue("@prod_foto1", produto.Imagem1);
                cmd.Parameters.AddWithValue("@prod_foto2", produto.Imagem2);
                cmd.Parameters.AddWithValue("@prod_foto3", produto.Imagem3);
                cmd.Parameters.AddWithValue("@prod_reverso", produto.TipoLeilao);


                cn.Open();
                produto.Id = Convert.ToInt32(cmd.ExecuteScalar());

                return produto;
            }
            catch (SqlException ex)
            {
                throw new Exception("Servidor SQL Erro:" + ex.Number);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro:" + ex.Message);
            }
            finally
            {
                cn.Close();
            }
        }
    }
}